home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / iguana / incosrc / incosrc.exe / STARF / TUNELGEN.PAS < prev   
Pascal/Delphi Source File  |  1993-06-25  |  2KB  |  102 lines

  1.  
  2.  
  3. CONST
  4.    Header:   STRING = 'Tunnel path ';
  5.    OutFile:  STRING = 'tunnpath';
  6.    DataType: STRING = 'DW';
  7.    DataLen          = 5;
  8.  
  9. VAR
  10.    fo : TEXT;
  11.    fi : FILE OF BYTE;
  12.  
  13.    i, j, k  : INTEGER;
  14.  
  15.  
  16. CONST
  17.    bc : INTEGER = 0;
  18.  
  19. PROCEDURE DoNum(b: INTEGER);
  20.  
  21. BEGIN
  22.    IF bc = 0 THEN BEGIN
  23.       WriteLn(fo);
  24.       Write(fo, '        ',DataType, ' ', b: DataLen);
  25.    END ELSE
  26.       Write(fo, ',', b : DataLen);
  27.    bc := (bc + 1) MOD 12;
  28. END;
  29.  
  30.  
  31. FUNCTION X2(x: REAL): REAL;
  32. BEGIN
  33.    X2 := x*x
  34. END;
  35.  
  36.  
  37.  
  38. TYPE
  39.    TPath = ARRAY [0..2047] OF INTEGER;
  40.  
  41. VAR
  42.    px, py : TPath;
  43.  
  44. CONST
  45.    radius = 16384.0;
  46.  
  47.  
  48. BEGIN
  49.    Assign(fo, OutFile+'.inc');
  50.    ReWrite(fo);
  51.    WriteLn(fo, '; ----- ', Header, '. ------------');
  52.  
  53.  
  54.    FOR i := 0 TO 2047 DO BEGIN
  55.       px[i] := 0;
  56.       py[i] := 0
  57.    END;
  58.  
  59.  
  60.    j := 512;
  61.    FOR i := 1 TO 64 DO BEGIN
  62.       px[j] := ROUND(radius*X2(SIN(j*PI/128.0)));
  63.       INC(j)
  64.    END;
  65.  
  66.    FOR i := 1 TO 768 DO BEGIN
  67.       px[j] := ROUND(radius*SIN(j*PI/128.0));
  68.       INC(j)
  69.    END;
  70.  
  71.    FOR i := 1 TO 64 DO BEGIN
  72.       px[j] := ROUND(radius*X2(SIN(j*PI/128.0)));
  73.       INC(j)
  74.    END;
  75.  
  76.    j := 768;
  77.    FOR i := 1 TO 64 DO BEGIN
  78.       py[j-64] := ROUND(radius*X2(SIN(j*PI/128.0)));
  79.       INC(j)
  80.    END;
  81.  
  82.    FOR i := 1 TO 768 DO BEGIN
  83.       py[j-64] := ROUND(radius*SIN(j*PI/128.0));
  84.       INC(j)
  85.    END;
  86.  
  87.    FOR i := 1 TO 64 DO BEGIN
  88.       py[j-64] := ROUND(radius*X2(SIN(j*PI/128.0)));
  89.       INC(j)
  90.    END;
  91.  
  92.  
  93.  
  94.    FOR i := 0 TO 2047 DO BEGIN
  95.       DoNum(px[i]);
  96.       DoNum(py[i])
  97.    END;
  98.    Close(fo)
  99. END.
  100.  
  101.  
  102.